package fiuba.algo3.XMLProcessor.nucleo;

import fiuba.algo3.XMLProcessor.EntradaSalida.ImpresoraNodos;
import fiuba.algo3.XMLProcessor.EntradaSalida.ParserXML;
import java.io.FileNotFoundException;

public class NodoDocumento
{
	private final String nodoCabecera;
	private Nodo nodoRaiz;

	static public NodoDocumento leerArchivo(String nombreArchivo) throws FileNotFoundException
	{
		ParserXML parser = new ParserXML(nombreArchivo);
		Nodo nodo = parser.parsear();
		parser.cerrar();
		return new NodoDocumento(nodo);
	}

	public NodoDocumento(Nodo nodoRaiz)
	{
		this.nodoCabecera = "<?xml version=\"1.0\" encoding=\"ISO8859-1\" standalone=\"no\"?>";
		this.nodoRaiz = nodoRaiz;
	}

	public NodoDocumento(String nombreRaiz)
	{
		this(new Nodo(nombreRaiz));
	}

	public String cabecera()
	{
		return this.nodoCabecera;
	}

	public NodoXML raiz()
	{
		return this.nodoRaiz;
	}

	public void grabarEnArchivo(String nombreArchivo)
	{
		ImpresoraNodos impresora = new ImpresoraNodos(nombreArchivo);
		impresora.imprimir(this);
		impresora.cerrar();
	}
}
